// 1. 导入axios库
import axios from "axios";
import vue from "vue";
// 2. 创建axios实例
const instance = axios.create({
  baseURL: "http://127.0.0.1:3000",
  // 超时时间
  timeout: 1000,
});
// 3. 配置axios拦截器
// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 请求发出去前要执行的方法
    const token = localStorage.getItem("token");
    config.headers.Authorization = `Bearer ${token}`;
    // localStorage.removeItem("token");
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);
// 响应拦截器
instance.interceptors.response.use(
  (response) => {
    // 请求成功后会执行的方法
    const { authorization } = response.headers;
    // console.log(authorization);
    authorization && localStorage.setItem("token", authorization);
    return response.data;
  },
  (error) => {
    // console.log(error);
    if (error.response.status == 401) {
      localStorage.removeItem("token");
      location.href = "/login";
    }
    return Promise.reject(error);
  }
);

// 4.导出插件对象
export default {
  install(Vue) {
    // 挂载instance
    Vue.prototype.$http = instance;
  },
};
